66 回顾总结

定义 说明
int l_v1 定义整型变量
int *lp 定义一个指针
int l_arr[10] 定义一个数组
int *lp[10] 定义一个指针数组
int f_test() 定义一个函数,返回值int
int * f_test() 定义一个函数,返回值是int 指针
int **lp 定义一个二级指针



上述表,除了倒数第二个,没有讲过,其他都讲过了.大家应该做到一目了然,熟悉掌握其在内存中的本质是什么.
常量指针和指针常量

const(代表常量)    *(指针)
int const  *l_v1; //常量指针,指针的地址可以修改,内容不能重复赋值.
int * const l_v1;//指向的内存地址不可以修改,但是内容可以改变. 必须初始化.

const char  *  l_arr = char const * l_arr


#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int f_strlen(const char * p_1) {
 int l_lenth = 0;
 while (p_1[l_lenth] != '') {
  l_lenth++;
 }
 return l_lenth;
}

int f_strcpy(char * p_dest, char const * p_src) {
 int l_length = 0;
 while (p_src[l_length] != '') {
  p_dest[l_length] = p_src[l_length];
  l_length++;
 }
 return l_length;
}

void main() {
 char l_v1[10] = "123456789";
 char l_v2[10] = { 0 };
 f_strcpy(l_v2, l_v1);
 system("pause");
}


#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void f_printfint(int * p_1, int l_length) {
 for (size_t i = 0; i < l_length; i++) {
  printf("%d ", p_1[i]);
 }
}

void main() {
 int l_array[] = { 123,456 };
 f_printfint(l_array, sizeof(l_array) / sizeof(int));
 system("pause");
}

//在写一个关于参数是int类型数组的函数时,最好再提供一个参数,表示这个数组的内存长度,方便读写遍历控制.
//如果函数的参数是字符串,就不需要这个字符串就多长这个参数,比如strcpy

原文地址:https://www.cnblogs.com/xiaodaxiaonao/p/7995013.html