c语言基础笔记
一 :数据类型
1.float类型,在输出的时候可以使用 .数字 来把浮点数精确到小数点后几位,比如 printf("%.3f",float)精确到小数点后三位,不足补0
2.字符串接收 定义个字符数组
char str[]="";
scanf("%s",&str); //遇到空格就停止接收
gets(str); //可以接收所有字符
printf("%s",str);
3.在向一个函数传入数组,直接传入数组名,其实就相当于传入的是数组的首地址指针;在函数中可以用数组形式接收int arr[],也可以用指针形式接收int * arr;
#include <stdio.h>
#define four 4; void add(int arr[]);
//也可以是
void add(int * arr); int main(void)
{
int arr[four]={,,,};
add(arr);
} void add(int * arr)
{
//在操作数组时 arr[i]==*(arr+i)
int i;
for(i=;i<;i++)
{
printf("%d",arr[i]);
//也可以是
printf("%d",*(arr+i));
} }
二:结构体
struct books{
int num;
char name[];
float price;
}
2.1. 结构体内存占用
2.1.1.结构体所占的空间可以见到的认为是各个成员所占内存空间之和
int 4bit, char 1bit, float 4bit
所以结构体books的大小大概是29bit
2.1.2.实际是最大成员变量所占空间的最小整倍数
在结构体books中最大成员变量是int和float,都是4bit,4的最小倍数要比29大,所以就是32,
因此实际占得大小是32bit
2.3 typedef 给类型重新指定名称
typedef int TOINT
int a=10; => TOINT a=10;
更改结构体的名称
1.typedef struct books BKS;
2. typedef struct books{
int num;
char name[21];
float price;
}BKS;
2.3 赋值
2.3.1. 最特殊的是给结构体中的数组赋值
错误写法: BKS.name = "C primer Plus";
正常写法: strcpy(BKS.name,"C primer Plus");
或者在定义结构体的时候使用指针指定名称
typedef struct books{
int num;
char * name;
float price;
}BKS;
这样就可以
先申请内存空间malloc
BKS.name = (char*) malloc(50*sizeof(char));
strcpy(BKS.name,"C primer Plus");
2.3.2. 结构体变量可以直接赋值给另一个结构体变量
BKS a={......}; BKS b;
b = a;
2.4 数组与结构体
定义一个结构体数组,存放结构体
BKS arr[] = {
{....},
{....},
{....}
}
访问的话就是,比如访问name : arr[0].name
c语言基础笔记的更多相关文章
- TSQL语言基础笔记之单表查询
db_id()函数 返回对象的id,如果返回的对象为null,则判断不存在 if db_id('testdb') is null --判断数据库是否存在 create database testdb ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- 【记】《.net之美》之读书笔记(一) C#语言基础
前言 工作之中,我们习惯了碰到任务就直接去实现其业务逻辑,但是C#真正的一些基础知识,在我们久而久之不去了解巩固的情况下,就会忽视掉.我深知自己正一步步走向只知用法却不知原理的深渊,所以工作之余,一直 ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...
- C语言基础(转载自大海笔记)
# C语言基础2015年03月26日10:04:411. 语言排行榜C——java——objective-C2. 进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西 ...
- Java基础笔记(1)----语言基础
变量 变量:是内存中的一块存储空间,是存储数据的基本单元. 使用:先声明,后赋值,在使用. 声明:数据类型 + 变量名 = 值.(例:int a = 5:) 数据类型 分类:如图: 详解: Strin ...
- MySQL学习笔记_8_SQL语言基础复习
SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...
- go学习笔记-语言基础
语言基础 结构 基础组成: 包声明 引入包 函数 变量 语句 & 表达式 注释 程序 在开始编写应用之前,我们先从最基本的程序开始,在学习大部分语言之前,都会编写一个可以输出hello wor ...
随机推荐
- 20155203 实验四《 Android程序设计》实验报告
一.实验内容 实验项目一:Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十 ...
- 20155204第4次实验《Android程序设计》实验报告
20155204第四次实验报告 一.实验内容及步骤 1.Android Stuidio的安装测试: 安装 Android Stuidio 完成Hello World, 要求修改res目录中的内容,He ...
- 20155234 2006-2007-2 《Java程序设计》第4周学习总结
20155234 2006-2007-2 <Java程序设计>第4周学习总结 教材学习内容总结 为了避免重复的行为定义使用继承. 要学会如何正确判断使用继承的时机以及继承之后如何活用多态. ...
- 20155317 《Java程序设计》0510上课考试博客
20155317 <Java程序设计>0510上课考试博客 二.Arrays和String单元测试 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常, ...
- 20155328 2016-2017-2 《Java程序设计》第三周学习总结
20155328 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 类是对象的设计图,对象是类的实例.用class定义类,用new新建一个对象. 一个原始码中可 ...
- tomcat如何禁止显示目录和文件列表
打开 tomcat的安装目录/conf/web.xml 文件 找到: <servlet> <servlet-name>default</servlet-name& ...
- oracle基础命令
oracle使用步骤: 一.oracle安装 两个文件解压到同一文件夹,doc为说明/使用文档 二.oracle启动: 1.启动oracle:启动监听和自定义库 2.启动cmd->sqlplus ...
- 【MongoDB】NoSQL Manager for MongoDB 教程(基础篇)
前段时间,学习了一下mongodb,在客户端工具方面,个人认为 NoSQL Manager for MongoDB 是体验比较好的一个,功能也较齐全.可惜在找教程的时候,发现很难找到比较详细的教程,也 ...
- 【SAP BI】BW如何连接SQLSERVER数据库
一.工具 源版本: SQLSERVER2008 数据库TEST 目标版本: SAP 客户端 7.4 服务器7.5 二.在BW中建立数据库连接,并生成数据源 2.1 登录SAP BW开发机 ,输 ...
- STM8在IAR中Printf的整形长度问题
//ld是32位的 printf("up_intval:%ld\r\n",device_set.upload_tem); //d是16位的 printf("up_intv ...