黑马程序员 C语言常见的一些注意4

来源:互联网 发布:android 启动速度优化 编辑:程序博客网 时间:2024/05/21 06:42

---------------------- <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>、期待与您交流! ----------------------


0 0