---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、
<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
1、(数组与指针)数组的名字就该数组的首地址如:
int a[4] = {1,2,3,,42}; // 定义一个数组
int *p = a; //定义一个指针,并把数组的首地址给p,且有p+1的地址就是&a[1]
printf(“%d,%d,%d”,a[0], *(p+1), p[2]); // 指针和数组的3种访问数组元素
对于printf中的第二种形式*(p+1)这里的加1不是指地址加1,而是增加一个该指针类型所占的字节的个数
2、(字符串与指针)由于字符串与是字符数组则它的一些操作数组相似,但有一点我们不能通过 s[1] = ‘T’,
这样的形式来修改由指针定义的字符串的某个值。如: char *p = “china”; // 指针定义一个字符串
p[0]= ‘R’; // 这种形式修改的值的错的,这样会报内存出错,bus error
也就是说用指针定义的字符串是不能修改的,但是 char p[] = “china”; 这种形式的可以修改。
3、内存分为五块:其中三块是
常量区:存 放一些常量
栈:存放局部变量
堆:存放对象
4、字符串数组:char *p[5] = {“it”,”ok”,”kkn”}; 定义一个含有5个字符串的数组,并有赋值
5、函数返回值是可以允许为指针类型的。像返回字符串
char *string()
{
return “jack” // 返回一个字符串
}
6、(指向函数的指针)定义:函数返回值(void、int、……) (*变量名)(参数列表)如:
void (*p)() // 定义一个指向函数名为p的指针,该函数不传参数,没有返回值
int (*pp)(int i,int j ) // 定义一个函数指针,函数传两个参数,且返回整型数据
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、
<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------