美文网首页
C 语言基础

C 语言基础

作者: 李永开 | 来源:发表于2019-10-08 10:56 被阅读0次

一.基础

  • 定义基本数据类型变量时,
    如果是全局的int类型变量,系统会默认赋值为0.
    如果是局部的int类型变量, 打印值为系统随机给的垃圾数据
  • 数组名代表着数组的首地址
  • C语言中使用数组来表示字符串,例如char str[] = 'yk';char str[3] = {'y', 'k', '\0'};
    如果类似第一种写法,是连续的表示,系统默认会在字符串的末尾加一个'\0'结束符
  • char a[] = "lyk" a是一个字符串变量,可以修改
    char *a = "lyk" a是一个字符串常量,不可修改
  • 函数指针,指针指向函数
    指针函数,函数返回指针
int sum(int a, int b)
{
   return a+b;
}


int main(int argc, const char * argv[]) {

   //定义一个函数指针, 指针指向函数 sum
   int (*p)(int, int) = sum;
   
   //调用函数指针,其实就是调用 指针指向的函数 sum
   int ret = (*p)(1, 2);
  //int ret = p(1, 2) 也可以的
   printf("%d\n", ret);
}
  • 指向结构体的指针访问结构体变量
    1: 结构体变量名.成员名
    2: (*指针变量名).成员名
    3: 指针变量名->成员名
  • const的使用
    const只修饰const 右边的值.

const int *p0 = &a;
*p0不能被修改:不能修改p0所指向的内容,
但p0的指向可以修改:p0的指向可以被修改
int *const p0 = &a;
p0不能被修改:p0的指向不可以被修改,
*p0可以被修改:p0指向的内容可以被修改

int a = 0
const int *p0 = &a;            //被const修饰,*p0变成常量不能被修改,p0可以被修改
int const *p1 = &a;            //*p1不能被修改,p1可以被修改
int * const p2 = &a;          //p2不能被修改, *p2可以被修改
const int * const p3 = &a;    //p3和*p3都不能被修改(左边const修饰*p3,右边修饰p3)
int const * cosnt p4 = &a;    //p4和*p4都不能被修改,都变成了常量

相关文章

网友评论

      本文标题:C 语言基础

      本文链接:https://www.haomeiwen.com/subject/tvyvyctx.html