《C和指针》摘要(POINTERS ON C)

news/2024/9/28 5:22:20 标签: C

只是摘要一些自己不懂的或认为重要的。

  • C并不具备任何输入/输出语句;I/O是通过调用库函数实现的。C也不具备任何异常处理语句,它们也是通过调用库函数来完成的。
  • 声明一个数组名其值为指针常量,并开辟指定的空间。声明指针变量,只为指针本身保留内存空间,不分配内存、且未被初始化指向现有的内存空间。
  • 如果可以互换使用指针表达式下标表达式;下标绝不会比指针更有效率,但指针有时会比下标更有效率。
  • 效率并不是唯一的因素,通常代码的简洁度更为重要。
  • 多维数组中,只有第一维可以缺省,其余几维必须显示写出其长度。
  • 数组名的值大多数指向数组第1个元素的指针。有2个例外:sizeof和&返回一个指向数组的指针。
  • 只要有可能,函数的指针形参都应该声明为const。防止函数修改所指向的指针。
  • strlen()的返回值为无符号数,即绝不可能是负的,在if语句要注意。
  • 结构体中,花括号右边声明创建变量,花括号左边的变量为标签没有创建变量。使用typedef创建结构体和结构标签几乎相同,区别为其花括号左边变量为类型名而不是结构标签。
  • 预处理器:#argument 结构 由预处理器转换为字符串常量"argument"。##操作符用于把它两边的文本粘贴成同一个标识符。#undef导致一个名字的原来定义被忽略。#line允许告诉编译器下一行输入的行号,可选内容告诉编译器输入源文件的名字。#progma例如可以想一个函数如果内联的汇编代码。

http://www.niftyadmin.cn/n/1516065.html

相关文章

Python多线程 threading模块[6] 可重入锁RLock

考虑这种情况: 如果一个线程遇到锁嵌套的情况该怎么办,这个嵌套是指当我一个线程在获取临界资源时,又需要再次获取。根据这种情况,代码如下: # !/usr/bin/python3 # coding: utf-8 import threadinglock threading.L…

C++筛选法求n以内素数(空间换时间)

#include <iostream> using namespace std; #define MAX_NUM 10000000 char isPrime[MAX_NUM 10];//最终如果isPrime[i]为1&#xff0c;则表示其为素数int main() {for(int i 2; i < MAX_NUM; i)//开始假设所有数都是素数isPrime[i] 1;for(int i 2; i < MAX_NU…

Python全局变量的 3种实现方式及垃圾回收的影响

cat.py # !/usr/bin/python3 # coding: utf-8ear 0dog.py # !/usr/bin/python3 # coding: utf-8class Dog(object):leg 0def __init__(self, num):# 类变量Dog.leg numrun.py # !/usr/bin/python3 # coding: utf-8 import cat from dog import Dogmouth 0def main():Do…

IDEA分别导出可引用Jar包 和 可执行Jar包

一、可引用Jar包 1、码代码 示例代码&#xff0c;实际按需 package com.cn;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class DateUtil {static final SimpleDateFormat fmt1 new SimpleDateFormat("yyyy-MM…

怎么让mysql没有事务_MySQL如何找出未提交事务的SQL浅析

很久之前曾经总结过一篇博客&#xff0c;现在看来&#xff0c;这篇文章中不少知识点或观点都略显肤浅&#xff0c;或者说不够深入&#xff0c;甚至部分结论是错误的。下面重新探讨一下这个话题。那么我们还是以之前的例子来介绍。--准备测试环境数据(实验环境为MySQL 8.0.18社区…

IDEA导入第三方JAR包的两种方式

一、方式1 File → Project Structure → Project Settings → Libraries → Java → Dependencies → Export → → JARs or directories.. 完成后&#xff0c;在项目路径 External Libraries下可看到补充的 JAR包 二、方式2 File → Project Structure → Project Setting…

PAT:两个有序链表序列的合并

本题要求实现一个函数&#xff0c;将两个链表表示的递增整数序列合并为一个非递减的整数序列。 函数接口定义&#xff1a; List Merge( List L1, List L2 ); 其中List结构定义如下&#xff1a; typedef struct Node *PtrToNode; struct Node {ElementType Data; /* 存储结点数…

Maven的生命周期Lifecycle

参考资料&#xff1a; 《Maven官方文档说明》 《Maven生命周期》 注&#xff1a;执行某一阶段操作时&#xff0c;其之前的所有阶段也联带自动执行 1clean清空maven构建的目标文件target&#xff0c;包括包和字节码文件2validate验证pom依赖是否存在&#xff0c;验证代码是否正…