C语言基础知识备忘

数组:

  1. 声明并初始化赋值:
int  array1[5] = {1,2,3,4,5}; //一维数组,默认5个元素。
int array11[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; //二维数组,3行4列。
char array2[5] = {'L','O','V','E','U'}; //字符赋值。
char array3[] = "LOVEU"; //字符串赋值。
  1. 赋值:
int  array1[5] = {1,2,3,4,5}; //法一:初始化时就赋值。
array1[4] = 4; //法二:以后单独赋值。
  1. PS:
1 .初始化赋值的时候可先赋值一部分,剩余的部分是\0即结束符。
int  array1[5] = {1,2};
2 .声明数组可以先不说明多少元素:
int  array1[] = {1,2,3,4,5}; //那么就是5个元素,数组长度为5.
3 .问:字符串数组和字符数组区别:
答:大致相同,但是字符串数组最后一个元素存\0 结束符,
使用sizeof()计算长度发现字符串长度比字符长度多一个。

指针:

变量、数组、函数等都是存在于计算机内存中。内存中存放的位置就叫做地址。地址由一系列编号组成,所以又称为指针。

1.指针变量。用*
int *p1; //指向整型变量的指针变量p1.
float *p2; 
char *p3; 

2.取地址运算符,&
int a=88;  //初始化变量a为88。
int *p; //定义一个指针变量。
p = &a; //取得变量a所存放的地址,并且赋值给指针变量p1.
printf("%d\n",*p); //p代表地址,*p代表这个地址中存放的内容。

3.野指针和NULL.
初始化的指针如果没有指向的话就是野指针,很危险,可以先赋值为NULL。

4.分配内存的函数。
p = (int *)malloc(99); //指针变量p,指向的变量类型为int,分配了99个内存空间。
free(p); //使用后释放内存空间。

5.数组的指针:
int a[5] = {1,2,3,4,5};
int *p;
p = &a[0];  //p指向数组的首地址。
p= a;  //等同上面,p指向数组的首地址。

6.字符串的指针:
char *ps = "love";  //ps指向字符串的首地址。
printf("%s \n",ps); //"love"
printf("%c \n",*ps); //"l"
printf("%c \n",*(ps+1)); //"o"

7.指针用途,节约内存空间。
  char *pc[3] = {
            "love",
            "loveu",
            "loveuu"
    };
    for (int i=0; i<3; i++) {
        printf("%s \n", pc[i]); //逐行打印。
    }
    return 0;

函数

//函数要先声明,然后定义,然后就可以使用了。(递归函数见下)。
#include <stdio.h>
int sum(int); //函数先声明。
int main(){
    int n = 100, s = 0;
    s = sum(n);
    printf("%d\n", s);
}

int sum(int n){
    if (n == 1) {
        return 1;
    }else{
        return n+sum(n-1);
    }
}

变量

static静态变量,static int a = 6;,主要作用于局部变量,用于延长局部变量的生命周期。
extern,主要用于全局变量和函数。用于变量提升。

#include <stdio.h>
int main(void){
    extern int a; //没有这句的话就会显示“无法使用未声明的变量。”
    printf("%d \n",a);
}
int a = 11;

参数

指针做参数:
#include <stdio.h>
void swap(int *p, int *q);
int main(){
    int a=100,b=200,*p1=&a,*p2=&b;
    printf("main调用swap之前*p1:%d, p2:%d.\n",*p1,*p2);
    swap(&a, &b);
    printf("main调用swap之后*p1:%d, p2:%d.\n",*p1,*p2);
    return 0;
}
void swap(int *p, int *q){
    int temp;
    temp = *p;
    *p = *q;
    *q = temp;
    printf("在swap函数中置换后*p:%d, q:%d.\n",*p,*q);
}

#运行结果#:
main调用swap之前*p1:100, p2:200.
在swap函数中置换后*p:200, q:100.
main调用swap之后*p1:200, p2:100.
Program ended with exit code: 0

指针函数

#include <stdio.h>
char *substring(char s[], int, int);
int main(){
    char string[] = "I Love U";
    char *ps = NULL;
    ps = substring(string, 2, 7);
    printf("%s\n",ps);
    return 0;
}

char *substring(char s[], int i, int j){
    static char temp[100];
    int m,n;
    for (m=0, n=i; n<=j; m++,n++) {
        temp[m] = s[n];
    }
    temp[m] = '\0';
    return temp;
}

##运行结果:
Love U
Program ended with exit code: 0

结构体:

基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容

  • 一、框架 1、Mac系统及常用工具、进制;C数据类型、常量变量、运算符、表达式、格式化输入输出 2、关系运算符、逻...
    师景福阅读 689评论 0 1
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,440评论 3 44
  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 3,919评论 2 13
  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 6,354评论 1 42
  • 我不知道最后五天意味着什么?自己能做多少?可能年纪大了,反而没有了小时候的勇气,年纪大了,成熟了,做事情脚踏实地了...
    何用孤高比云月阅读 158评论 0 0