前两周学习总结

基本数据类型

bool类型

char类型

int类型

short类型

float类型

double类型

long类型

基本类型常量

整形常量

浮点常量

指数常量

字符常量

字符串常量

标识常量

变量基础说明

变量名由字母数字下划线组成

不能以数字开头

不能和关键字重名

地址为变量在内存空间的首地址

大小由数据类型决定

格式:

<存储类型><数据类型><变量名>

存储类型为:auto(默认) register static extern

运算符

算数运算符:+, -, *, /, %, ++, --

关系运算符:<, >, >=, <=, ==, !=

逻辑运算符:&&,||, !

位运算符:&,|,~,^,>>,<<

三目运算符:<表达式1> ? <表达式2> : <表达式3>

逗号运算符:从左到右依次执行,最后的值赋给变量

sizeof运算符:只针对数据类型,不针对变量;sizeof(类型或变量名)

输入输出

输出

putchar( C )

输入

getchar(C)

从键盘输入一个字符

字符串输入函数

gets(S)

gets函数不会以空格作为输入截止的标志

输出完自动换行

循环辅助

break

跳出循环

continue

跳出本次循环

return

在函数中为退出函数,main函数中的return为退出程序

数组

<存储类型><数据类型><数组名>[<表达式>]

数组名表示内存首地址

sizeof数组名是数组占用的总内存

内存字节数 = 数组维数 * sizeof (元素数据类型)

二维数组

顺序存放

内存是一维的

按行序优先

a[3][4]

由3个元素组成(3行),每个元素a[ i ]由包含4个元素(每行4个元素)的一维数组组成

指针与数组

#include <stdio.h>

int main(int argc, char *argv[])
{
    int a[3][4] = {
	{1,2,3,4},
	{5,6,7,8},
	{9,10,11,12}
    };
    int i, j, *p;
    printf("enter arr: \n");
    for(i = 0; i < 3; i++){
	for(j = 0; j < 4; j ++){
	    scanf("%d", &a[i][j]);

	}
    }
    puts(" ");
    
    printf("每个元素的内容 :\n");
    for(i = 0; i < 3; i++){
	for(j = 0; j < 4; j ++){
	    printf("a[%d][%d] = %-5d", i, j, a[i][j]);

	}
	puts(" ");
    }
    puts(" ");

    printf("每一行每个元素起始地址 :\n");
    for(i = 0; i < 3; i++){
	for(j = 0; j < 4; j ++){
	    printf("a[%d][%d] = %p\n", i, j, &a[i][j]);

	}
	puts(" ");
    }

    for(i = 0; i < 3; i++){
	for(j = 0; j < 4; j++){
	    printf("a[%d]+1:  a[%d][%d] = %p\n", i, i, j, a[i]+j);
	}
	puts(" ");
    }

    printf("每一行的起始地址 :\n");
    for(i = 0; i < 3; i++){
	printf("&a[i]:  a[%d][0] = %p\n", i, &a[i]);
    }
    puts(" ");
    
    for(i = 0; i < 3; i++){
	printf("a+1: a[%d][0] = %p\n", i, a+i);
    }
    puts(" ");
    
    for(i = 0; i < 3; i++){
        printf("&a[i]+1:  a[%d][0] = %p\n", i, &a[0]+i);
    }
    puts(" ");
    
    printf("二维数组的起始地址 :\n");
    printf("&a: %p\n", &a);
    puts(" ");

    printf("二维数组内第一个元素的起始地址 :\n");
    printf("a: %p\n", a);
    puts(" ");

    return 0;
}

行指针变量

<存储类型><数据类型>(*<指针变量名>)[表达式];

  1 #include <stdio.h>
  2 
  3 int main(int argc, char *argv[])
  4 {
  5     int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
  6     int j = 0, i = 0;
  7     int (*p)[4] = a;
  8     
  9     for(i = 0; i < 3; i++){
 10         for(j = 0; j < 4; j++){
 11             
 12         printf("%d ", *((*(p+i))+j));	//p+i 为每行的地址(p+i)+ j为一行每一列的地址
 13         
 14         }
 15     p = a;
 16     puts(" ");
 17     }
 18     puts(" ");
 19     return 0;
 20 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值